ellipsoid algorithm